# 这是一个 CMakeLists.txt 文件
# Cmake使用方式  “cmake “CMakeLists.txt文件所在路径””

#指定使用的 cmake 的最低版本
cmake_minimum_required(VERSION 3.0)

#定义工程名称，并可指定工程的版本、工程描述、web主页地址等
project(cmakeNesting)

#增加-std=c++11
set(CMAKE_CXX_STANDARD 11)

# 指定可执行文件、库文件输出的路径
set(HOME ./..) #此处相对路径为 makefile所在的路径
set(EXECUTABLE_OUTPUT_PATH ${HOME}/bin)

# 定义库文件所在目录，让子项目生成库文件到此目录下
set(HOME_Lib_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
# message(WARNING  "LIBRARY_OUTPUT_PATH path: ${CMAKE_CURRENT_SOURCE_DIR}/lib")

#PROJECT_SOURCE_DIR宏对应的值就是我们在使用cmake命令时，后面紧跟的目录 一般是工程的根目录
include_directories(${PROJECT_SOURCE_DIR}/include)      #APP自己的头文件
include_directories(${PROJECT_SOURCE_DIR}/ADD/include)  #调用库的头文件

##添加源文件.cpp
# file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型)  GLOB 非递归搜索  GLOB_RECURSE 递归搜索 CMAKE_CURRENT_SOURCE_DIR 宏表示当前访问的 CMakeLists.txt 文件所在的路径。
file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)

# # 包含静态库或者动态库路径
link_directories(${PROJECT_SOURCE_DIR}/lib)
# # 链接静态库 命令写到生成了可执行文件之之前：
# link_libraries(add)

add_executable(app ${SRC_LIST})

# cmake中指定要链接的动态库的时候，应该将命令写到生成了可执行文件之后：
# 指定可执行程序要链接的动态库名字
# 1、链接系统动态库
# target_link_libraries(app pthread)
# 2、第三方或者自己的库文件
target_link_libraries(app mysqlclient)
